// @ts-ignore
/* eslint-disable */
import { requestAuth } from '@/utils/request';

/** 获取机构tree列表 */
export async function fetchDepartmentList(data: {
  size: number;
  current: number;
  params?: {
    column: string;
    type: string;
    values?: string;
  }[];
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/getDeptTreeList',
    data,
  });
}

/** 校验机构编码是否重复 */
export async function checkOrganCode(data: { id?: string; organCode: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/check',
    data,
  });
}

/** 添加机构 */
export async function addDepartment(data: {
  organName: string; // 机构名称
  organCode: string; // 机构编码
  parentId: string; // 父机构组件
  provinceId: string; // 省主键
  cityId: string; // 市主键
  districtId: string; // 区主键
  isCorporation: boolean; // 是否法人单位
  formType: string; // 机构形式 组织/机构
  phone?: string; // 联系电话
  email?: string; // 邮箱
  sort: number; // 排序
  address?: string; // 详细地址
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/save',
    data,
  });
}

/** 修改机构 */
export async function modifyDepartment(data: {
  id: string; // 机构id
  organName: string; // 机构名称
  organCode: string; // 机构编码
  parentId: string; // 父机构组件
  provinceId: string; // 省主键
  cityId: string; // 市主键
  districtId: string; // 区主键
  isCorporation: boolean; // 是否法人单位
  formType: string; // 机构形式 组织/机构
  phone?: string; // 联系电话
  email?: string; // 邮箱
  sort: number; // 排序
  address?: string; // 详细地址
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/update',
    data,
  });
}

/** 删除机构 */
export async function deleteDepartment(data: {
  id: string; // 机构id
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/delete',
    data,
  });
}

/** 获取机构关联的角色列表 */
export async function fetchRoleListWithDepartmentRelation(data: {
  organId: string; // 机构id
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/getOrganRoleList',
    data,
  });
}

/** 获取机构关联的岗位列表 */
export async function fetchJobListWithDepartmentRelation(data: {
  organId: string; // 机构id
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/organ/getOrganPostList',
    data,
  });
}
